Dynomotion

Group: DynoMotion Message: 3830 From: bradodarb Date: 2/10/2012
Subject: homing inconsistencies
Hello Tom,

I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.

I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.

Could this value need adjustment? ::
FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us

Here is a snippet of the homing routine::

void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);

main()
{



DoHome( 5, // Laser #5
100, // speed steps/sec
1, // direction to home
172, // home input bit
1, // bit polarity (0 or 1) when tripped
1000); // amount to move back inside (counts)


}
void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
{
float oppdir = dir * -1;

EnableAxis(axis);
if(ReadBit(bit)==polarity)
{
Jog(axis, speed * oppdir); // start moving
while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
Jog(axis,0); // stop
MoveRelAtVel(axis,sensoroffset * oppdir,speed);
}
Jog(axis, speed * dir); // start moving
while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
Jog(axis,0); // stop
MoveRelAtVel(axis,sensoroffset * oppdir,speed);
EnableAxisDest(axis,0);
}

Please help

-Brad Murry
Group: DynoMotion Message: 3831 From: Tom Kerekes Date: 2/10/2012
Subject: Re: homing inconsistencies
Hi Brad,
 
I think the problem might be here at the end:
 
 Jog(axis,0); // stop
 MoveRelAtVel(axis,sensoroffset * oppdir,speed);
 EnableAxisDest(axis,0);
Jog commands or Move commands do not wait for the action to complete they only initiate the action.  So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
 
Please add waits between these
 
while (!CheckDone(axis)) ;
 
Also the stop is not really needed.  The MoveRel should perform a blended turnaround to the point inside the sensor.
 
Regards
TK
 
 
 

Group: DynoMotion Message: 3832 From: Brad Murry Date: 2/10/2012
Subject: Re: homing inconsistencies

Hello Tom,

 

That worked perfectly.

 

 

I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.

 

Here is the procedure for calibrating an axis on this machine::

 

Step 1

 

Home axis

 

Step 2

Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)

 

Step 3

Jog to 6” intervals from origin and log those positions

 

Step 4

Once the position table is filled, the axis can be commanded to a requested  position.

 

Step 5

The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.

 

 

 

This seems to works perfectly on one side of the table, but not the other.  On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.

 

I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.

Sometimes if I re-home the problem axis it will go to the right position.  In every case, it does display the dest value that I command it to, but seems to arrive at a different place.

 

  When I re-home and jog the axis back to the origin it reports a different dest!

 

 

I’ve had them re check that everything is tight mechanically and I am told that it is.

 

Not sure what to do here…..

 

-Brad Murry

 

 

From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
Sent: Friday, February 10, 2012 12:35 PM
To: DynoMotion@yahoogroups.com
Subject: Re: [DynoMotion] homing inconsistencies

 

 

Hi Brad,

 

I think the problem might be here at the end:

 

 Jog(axis,0); // stop
 MoveRelAtVel(axis,sensoroffset * oppdir,speed);
 EnableAxisDest(axis,0);

Jog commands or Move commands do not wait for the action to complete they only initiate the action.  So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.

 

Please add waits between these

 

while (!CheckDone(axis)) ;

 

Also the stop is not really needed.  The MoveRel should perform a blended turnaround to the point inside the sensor.

 

Regards

TK

 

 

 

 

From: bradodarb <bradodarb@...>
To: DynoMotion@yahoogroups.com
Sent: Friday, February 10, 2012 11:11 AM
Subject: [DynoMotion] homing inconsistencies

 

 

Hello Tom,

I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.

I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.

Could this value need adjustment? ::
FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us

Here is a snippet of the homing routine::

void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);

main()
{


DoHome( 5, // Laser #5
100, // speed steps/sec
1, // direction to home
172, // home input bit
1, // bit polarity (0 or 1) when tripped
1000); // amount to move back inside (counts)


}
void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
{
float oppdir = dir * -1;

EnableAxis(axis);
if(ReadBit(bit)==polarity)
{
Jog(axis, speed * oppdir); // start moving
while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
Jog(axis,0); // stop
MoveRelAtVel(axis,sensoroffset * oppdir,speed);
}
Jog(axis, speed * dir); // start moving
while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
Jog(axis,0); // stop
MoveRelAtVel(axis,sensoroffset * oppdir,speed);
EnableAxisDest(axis,0);
}

Please help

-Brad Murry

 

Group: DynoMotion Message: 3835 From: bradodarb Date: 2/10/2012
Subject: Re: homing inconsistencies
I added in some motion logic to make sure the lasers are being position from the same direction every time.

Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.



I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.


-Brad Murry
--- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@...> wrote:
>
> Hello Tom,
>
>
>
> That worked perfectly.
>
>
>
>
>
> I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
>
>
>
> Here is the procedure for calibrating an axis on this machine::
>
>
>
> Step 1
>
>
>
> Home axis
>
>
>
> Step 2
>
> Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
>
>
>
> Step 3
>
> Jog to 6” intervals from origin and log those positions
>
>
>
> Step 4
>
> Once the position table is filled, the axis can be commanded to a requested position.
>
>
>
> Step 5
>
> The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
>
>
>
>
>
>
>
> This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
>
>
>
> I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
>
> Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
>
>
>
> When I re-home and jog the axis back to the origin it reports a different dest!
>
>
>
>
>
> I’ve had them re check that everything is tight mechanically and I am told that it is.
>
>
>
> Not sure what to do here…..
>
>
>
> -Brad Murry
>
>
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> Sent: Friday, February 10, 2012 12:35 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hi Brad,
>
>
>
> I think the problem might be here at the end:
>
>
>
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
>
> Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
>
>
>
> Please add waits between these
>
>
>
> while (!CheckDone(axis)) ;
>
>
>
> Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
>
>
>
> Regards
>
> TK
>
>
>
>
>
>
>
>
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 11:11 AM
> Subject: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hello Tom,
>
> I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
>
> I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
>
> Could this value need adjustment? ::
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
>
> Here is a snippet of the homing routine::
>
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
>
> main()
> {
>
>
> DoHome( 5, // Laser #5
> 100, // speed steps/sec
> 1, // direction to home
> 172, // home input bit
> 1, // bit polarity (0 or 1) when tripped
> 1000); // amount to move back inside (counts)
>
>
> }
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> {
> float oppdir = dir * -1;
>
> EnableAxis(axis);
> if(ReadBit(bit)==polarity)
> {
> Jog(axis, speed * oppdir); // start moving
> while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> }
> Jog(axis, speed * dir); // start moving
> while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
> }
>
> Please help
>
> -Brad Murry
>
Group: DynoMotion Message: 3839 From: Tom Kerekes Date: 2/10/2012
Subject: Re: homing inconsistencies
Hi Brad,
 
Again sounds like a mis-step problem.  If a stepper mis-steps it will be off by 4 full steps or 64 uSteps.  Is that what you are seeing?  It could be too high acceleration or something on the reversal.
 
TK

Group: DynoMotion Message: 3840 From: Brad Murry Date: 2/10/2012
Subject: Re: homing inconsistencies

I think it has to do with reversal.

 

As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a “creeping” of final position was observed by the tech when commanding the motor to the same position over and over.

 

So it happens like this::

 

Commanded move = 12

 

Actual first move = 12.5

Wait until done

Then back to 12

 

When this is repeated over and over it seems to “creep” as observed by the laser projection(but the Dest value in KMotionEXE is consistent).

 

-Brad Murry

 

From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
Sent: Friday, February 10, 2012 2:48 PM
To: DynoMotion@yahoogroups.com
Subject: Re: [DynoMotion] Re: homing inconsistencies

 

 

Hi Brad,

 

Again sounds like a mis-step problem.  If a stepper mis-steps it will be off by 4 full steps or 64 uSteps.  Is that what you are seeing?  It could be too high acceleration or something on the reversal.

 

TK

 

From: bradodarb <bradodarb@...>
To: DynoMotion@yahoogroups.com
Sent: Friday, February 10, 2012 1:20 PM
Subject: [DynoMotion] Re: homing inconsistencies

 

 

I added in some motion logic to make sure the lasers are being position from the same direction every time.

Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.

I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.

-Brad Murry

--- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@...> wrote:
>
> Hello Tom,
>
>
>
> That worked perfectly.
>
>
>
>
>
> I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
>
>
>
> Here is the procedure for calibrating an axis on this machine::
>
>
>
> Step 1
>
>
>
> Home axis
>
>
>
> Step 2
>
> Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
>
>
>
> Step 3
>
> Jog to 6” intervals from origin and log those positions
>
>
>
> Step 4
>
> Once the position table is filled, the axis can be commanded to a requested position.
>
>
>
> Step 5
>
> The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
>
>
>
>
>
>
>
> This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
>
>
>
> I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
>
> Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
>
>
>
> When I re-home and jog the axis back to the origin it reports a different dest!
>
>
>
>
>
> I’ve had them re check that everything is tight mechanically and I am told that it is.
>
>
>
> Not sure what to do here…..
>
>
>
> -Brad Murry
>
>
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> Sent: Friday, February 10, 2012 12:35 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hi Brad,
>
>
>
> I think the problem might be here at the end:
>
>
>
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
>
> Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
>
>
>
> Please add waits between these
>
>
>
> while (!CheckDone(axis)) ;
>
>
>
> Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
>
>
>
> Regards
>
> TK
>
>
>
>
>
>
>
>
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 11:11 AM
> Subject: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hello Tom,
>
> I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
>
> I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
>
> Could this value need adjustment? ::
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
>
> Here is a snippet of the homing routine::
>
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
>
> main()
> {
>
>
> DoHome( 5, // Laser #5
> 100, // speed steps/sec
> 1, // direction to home
> 172, // home input bit
> 1, // bit polarity (0 or 1) when tripped
> 1000); // amount to move back inside (counts)
>
>
> }
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> {
> float oppdir = dir * -1;
>
> EnableAxis(axis);
> if(ReadBit(bit)==polarity)
> {
> Jog(axis, speed * oppdir); // start moving
> while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> }
> Jog(axis, speed * dir); // start moving
> while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
> }
>
> Please help
>
> -Brad Murry
>

 

Group: DynoMotion Message: 3842 From: TK Date: 2/10/2012
Subject: Re: homing inconsistencies
Are you inverting the Step Pulse with the FPGA setting in your C code?

TK

On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@...> wrote:

 

I think it has to do with reversal.

 

As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a “creeping” of final position was observed by the tech when commanding the motor to the same position over and over.

 

So it happens like this::

 

Commanded move = 12

 

Actual first move = 12.5

Wait until done

Then back to 12

 

When this is repeated over and over it seems to “creep” as observed by the laser projection(but the Dest value in KMotionEXE is consistent).

 

-Brad Murry

 

From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
Sent: Friday, February 10, 2012 2:48 PM
To: DynoMotion@yahoogroups.com
Subject: Re: [DynoMotion] Re: homing inconsistencies

 

 

Hi Brad,

 

Again sounds like a mis-step problem.  If a stepper mis-steps it will be off by 4 full steps or 64 uSteps.  Is that what you are seeing?  It could be too high acceleration or something on the reversal.

 

TK

 

From: bradodarb <bradodarb@...>
To: DynoMotion@yahoogroups.com
Sent: Friday, February 10, 2012 1:20 PM
Subject: [DynoMotion] Re: homing inconsistencies

 

 

I added in some motion logic to make sure the lasers are being position from the same direction every time.

Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.

I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.

-Brad Murry
--- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@...> wrote:
>
> Hello Tom,
>
>
>
> That worked perfectly.
>
>
>
>
>
> I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
>
>
>
> Here is the procedure for calibrating an axis on this machine::
>
>
>
> Step 1
>
>
>
> Home axis
>
>
>
> Step 2
>
> Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
>
>
>
> Step 3
>
> Jog to 6” intervals from origin and log those positions
>
>
>
> Step 4
>
> Once the position table is filled, the axis can be commanded to a requested position.
>
>
>
> Step 5
>
> The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
>
>
>
>
>
>
>
> This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
>
>
>
> I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
>
> Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
>
>
>
> When I re-home and jog the axis back to the origin it reports a different dest!
>
>
>
>
>
> I’ve had them re check that everything is tight mechanically and I am told that it is.
>
>
>
> Not sure what to do here…..
>
>
>
> -Brad Murry
>
>
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> Sent: Friday, February 10, 2012 12:35 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hi Brad,
>
>
>
> I think the problem might be here at the end:
>
>
>
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
>
> Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
>
>
>
> Please add waits between these
>
>
>
> while (!CheckDone(axis)) ;
>
>
>
> Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
>
>
>
> Regards
>
> TK
>
>
>
>
>
>
>
>
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 11:11 AM
> Subject: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hello Tom,
>
> I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
>
> I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
>
> Could this value need adjustment? ::
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
>
> Here is a snippet of the homing routine::
>
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
>
> main()
> {
>
>
> DoHome( 5, // Laser #5
> 100, // speed steps/sec
> 1, // direction to home
> 172, // home input bit
> 1, // bit polarity (0 or 1) when tripped
> 1000); // amount to move back inside (counts)
>
>
> }
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> {
> float oppdir = dir * -1;
>
> EnableAxis(axis);
> if(ReadBit(bit)==polarity)
> {
> Jog(axis, speed * oppdir); // start moving
> while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> }
> Jog(axis, speed * dir); // start moving
> while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
> }
>
> Please help
>
> -Brad Murry
>

 

Group: DynoMotion Message: 3843 From: Brad Murry Date: 2/10/2012
Subject: Re: homing inconsistencies

This is one of the first lines in main()

 

FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us

 

-Brad Murry

 

From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
Sent: Friday, February 10, 2012 3:14 PM
To: DynoMotion@yahoogroups.com
Subject: Re: [DynoMotion] Re: homing inconsistencies

 

 

Are you inverting the Step Pulse with the FPGA setting in your C code?

TK


On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@...> wrote:

 

I think it has to do with reversal.

 

As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a “creeping” of final position was observed by the tech when commanding the motor to the same position over and over.

 

So it happens like this::

 

Commanded move = 12

 

Actual first move = 12.5

Wait until done

Then back to 12

 

When this is repeated over and over it seems to “creep” as observed by the laser projection(but the Dest value in KMotionEXE is consistent).

 

-Brad Murry

 

From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
Sent: Friday, February 10, 2012 2:48 PM
To: DynoMotion@yahoogroups.com
Subject: Re: [DynoMotion] Re: homing inconsistencies

 

 

Hi Brad,

 

Again sounds like a mis-step problem.  If a stepper mis-steps it will be off by 4 full steps or 64 uSteps.  Is that what you are seeing?  It could be too high acceleration or something on the reversal.

 

TK

 

From: bradodarb <bradodarb@...>
To: DynoMotion@yahoogroups.com
Sent: Friday, February 10, 2012 1:20 PM
Subject: [DynoMotion] Re: homing inconsistencies

 

 

I added in some motion logic to make sure the lasers are being position from the same direction every time.

Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.

I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.

-Brad Murry
--- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@...> wrote:
>
> Hello Tom,
>
>
>
> That worked perfectly.
>
>
>
>
>
> I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
>
>
>
> Here is the procedure for calibrating an axis on this machine::
>
>
>
> Step 1
>
>
>
> Home axis
>
>
>
> Step 2
>
> Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
>
>
>
> Step 3
>
> Jog to 6” intervals from origin and log those positions
>
>
>
> Step 4
>
> Once the position table is filled, the axis can be commanded to a requested position.
>
>
>
> Step 5
>
> The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
>
>
>
>
>
>
>
> This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
>
>
>
> I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
>
> Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
>
>
>
> When I re-home and jog the axis back to the origin it reports a different dest!
>
>
>
>
>
> I’ve had them re check that everything is tight mechanically and I am told that it is.
>
>
>
> Not sure what to do here…..
>
>
>
> -Brad Murry
>
>
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> Sent: Friday, February 10, 2012 12:35 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hi Brad,
>
>
>
> I think the problem might be here at the end:
>
>
>
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
>
> Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
>
>
>
> Please add waits between these
>
>
>
> while (!CheckDone(axis)) ;
>
>
>
> Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
>
>
>
> Regards
>
> TK
>
>
>
>
>
>
>
>
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 11:11 AM
> Subject: [DynoMotion] homing inconsistencies
>
>
>
>
>
> Hello Tom,
>
> I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
>
> I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
>
> Could this value need adjustment? ::
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
>
> Here is a snippet of the homing routine::
>
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
>
> main()
> {
>
>
> DoHome( 5, // Laser #5
> 100, // speed steps/sec
> 1, // direction to home
> 172, // home input bit
> 1, // bit polarity (0 or 1) when tripped
> 1000); // amount to move back inside (counts)
>
>
> }
> void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> {
> float oppdir = dir * -1;
>
> EnableAxis(axis);
> if(ReadBit(bit)==polarity)
> {
> Jog(axis, speed * oppdir); // start moving
> while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> }
> Jog(axis, speed * dir); // start moving
> while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> Jog(axis,0); // stop
> MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> EnableAxisDest(axis,0);
> }
>
> Please help
>
> -Brad Murry
>

 

Group: DynoMotion Message: 3844 From: bradodarb Date: 2/10/2012
Subject: Re: homing inconsistencies
Hello Tom,

This is the acutal start after headers::


int main()
{
double T0, LastX=0, LastY=0, LastZ=0, Tau;

KStepPresent=TRUE; // enable KSTEP input multiplexing
FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
ch0->InputMode=NO_INPUT_MODE;


... and so on to configure the rest of the axis settings.

-Brad Murry



--- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@...> wrote:
>
> This is one of the first lines in main()
>
>
>
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
>
>
>
> -Brad Murry
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
> Sent: Friday, February 10, 2012 3:14 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] Re: homing inconsistencies
>
>
>
>
>
> Are you inverting the Step Pulse with the FPGA setting in your C code?
>
> TK
>
>
> On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@...> wrote:
>
>
>
> I think it has to do with reversal.
>
>
>
> As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a “creeping” of final position was observed by the tech when commanding the motor to the same position over and over.
>
>
>
> So it happens like this::
>
>
>
> Commanded move = 12
>
>
>
> Actual first move = 12.5
>
> Wait until done
>
> Then back to 12
>
>
>
> When this is repeated over and over it seems to “creep” as observed by the laser projection(but the Dest value in KMotionEXE is consistent).
>
>
>
> -Brad Murry
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> Sent: Friday, February 10, 2012 2:48 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] Re: homing inconsistencies
>
>
>
>
>
> Hi Brad,
>
>
>
> Again sounds like a mis-step problem. If a stepper mis-steps it will be off by 4 full steps or 64 uSteps. Is that what you are seeing? It could be too high acceleration or something on the reversal.
>
>
>
> TK
>
>
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 1:20 PM
> Subject: [DynoMotion] Re: homing inconsistencies
>
>
>
>
>
> I added in some motion logic to make sure the lasers are being position from the same direction every time.
>
> Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.
>
> I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.
>
> -Brad Murry
> --- In DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> , Brad Murry <bradodarb@> wrote:
> >
> > Hello Tom,
> >
> >
> >
> > That worked perfectly.
> >
> >
> >
> >
> >
> > I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
> >
> >
> >
> > Here is the procedure for calibrating an axis on this machine::
> >
> >
> >
> > Step 1
> >
> >
> >
> > Home axis
> >
> >
> >
> > Step 2
> >
> > Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
> >
> >
> >
> > Step 3
> >
> > Jog to 6” intervals from origin and log those positions
> >
> >
> >
> > Step 4
> >
> > Once the position table is filled, the axis can be commanded to a requested position.
> >
> >
> >
> > Step 5
> >
> > The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
> >
> >
> >
> >
> >
> >
> >
> > This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
> >
> >
> >
> > I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
> >
> > Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
> >
> >
> >
> > When I re-home and jog the axis back to the origin it reports a different dest!
> >
> >
> >
> >
> >
> > I’ve had them re check that everything is tight mechanically and I am told that it is.
> >
> >
> >
> > Not sure what to do here…..
> >
> >
> >
> > -Brad Murry
> >
> >
> >
> >
> >
> > From: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> [mailto:DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> ] On Behalf Of Tom Kerekes
> > Sent: Friday, February 10, 2012 12:35 PM
> > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > Subject: Re: [DynoMotion] homing inconsistencies
> >
> >
> >
> >
> >
> > Hi Brad,
> >
> >
> >
> > I think the problem might be here at the end:
> >
> >
> >
> > Jog(axis,0); // stop
> > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > EnableAxisDest(axis,0);
> >
> > Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
> >
> >
> >
> > Please add waits between these
> >
> >
> >
> > while (!CheckDone(axis)) ;
> >
> >
> >
> > Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
> >
> >
> >
> > Regards
> >
> > TK
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > From: bradodarb <bradodarb@>
> > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > Sent: Friday, February 10, 2012 11:11 AM
> > Subject: [DynoMotion] homing inconsistencies
> >
> >
> >
> >
> >
> > Hello Tom,
> >
> > I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
> >
> > I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
> >
> > Could this value need adjustment? ::
> > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> >
> > Here is a snippet of the homing routine::
> >
> > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
> >
> > main()
> > {
> >
> >
> > DoHome( 5, // Laser #5
> > 100, // speed steps/sec
> > 1, // direction to home
> > 172, // home input bit
> > 1, // bit polarity (0 or 1) when tripped
> > 1000); // amount to move back inside (counts)
> >
> >
> > }
> > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> > {
> > float oppdir = dir * -1;
> >
> > EnableAxis(axis);
> > if(ReadBit(bit)==polarity)
> > {
> > Jog(axis, speed * oppdir); // start moving
> > while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> > Jog(axis,0); // stop
> > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > }
> > Jog(axis, speed * dir); // start moving
> > while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> > Jog(axis,0); // stop
> > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > EnableAxisDest(axis,0);
> > }
> >
> > Please help
> >
> > -Brad Murry
> >
>
>
>
> Reply to <mailto:bradodarb@...?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> sender | Reply to <mailto:DynoMotion@yahoogroups.com?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> group | Reply <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJxY2ZvOWhnBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTMyODkxMDc2Mg--?act=reply&messageNum=3840> via web post | <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJmNjNzbTNyBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMjg5MTA3NjI-> Start a New Topic
>
> Messages in this topic <http://groups.yahoo.com/group/DynoMotion/message/3830;_ylc=X3oDMTM1ZGx2Zm9yBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTMyODkxMDc2MgR0cGNJZAMzODMw> (6)
>
> Recent Activity:
>
> * <http://groups.yahoo.com/group/DynoMotion/members;_ylc=X3oDMTJnMDQ4Y3YxBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzI4OTEwNzYy?o=6> New Members 5
> * <http://groups.yahoo.com/group/DynoMotion/spnew;_ylc=X3oDMTJnMG84MTkzBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2cGhvdARzdGltZQMxMzI4OTEwNzYy> New Photos 2
> * <http://groups.yahoo.com/group/DynoMotion/files;_ylc=X3oDMTJocG9wZG04BF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2ZmlsZXMEc3RpbWUDMTMyODkxMDc2Mg--> New Files 3
>
> <http://groups.yahoo.com/group/DynoMotion;_ylc=X3oDMTJmaWR2YWZwBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMjg5MTA3NjI-> Visit Your Group
>
Group: DynoMotion Message: 3845 From: TK Date: 2/10/2012
Subject: Re: homing inconsistencies
That should be what is required. But you might try removing the 0x80 in case I'm wrong. Also increase the 32 to the max of 63 to see if that helps.

Otherwise can you move reliably from KMotion.exe?

Maybe you are doing something strange like re-enabling the axis every move or something?

TK

On Feb 10, 2012, at 2:18 PM, "bradodarb" <bradodarb@...> wrote:

 

Hello Tom,

This is the acutal start after headers::

int main()
{
double T0, LastX=0, LastY=0, LastZ=0, Tau;

KStepPresent=TRUE; // enable KSTEP input multiplexing
FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
ch0->InputMode=NO_INPUT_MODE;

... and so on to configure the rest of the axis settings.

-Brad Murry

--- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@...> wrote:
>
> This is one of the first lines in main()
>
>
>
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
>
>
>
> -Brad Murry
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
> Sent: Friday, February 10, 2012 3:14 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] Re: homing inconsistencies
>
>
>
>
>
> Are you inverting the Step Pulse with the FPGA setting in your C code?
>
> TK
>
>
> On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@...> wrote:
>
>
>
> I think it has to do with reversal.
>
>
>
> As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a “creeping” of final position was observed by the tech when commanding the motor to the same position over and over.
>
>
>
> So it happens like this::
>
>
>
> Commanded move = 12
>
>
>
> Actual first move = 12.5
>
> Wait until done
>
> Then back to 12
>
>
>
> When this is repeated over and over it seems to “creep” as observed by the laser projection(but the Dest value in KMotionEXE is consistent).
>
>
>
> -Brad Murry
>
>
>
> From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> Sent: Friday, February 10, 2012 2:48 PM
> To: DynoMotion@yahoogroups.com
> Subject: Re: [DynoMotion] Re: homing inconsistencies
>
>
>
>
>
> Hi Brad,
>
>
>
> Again sounds like a mis-step problem. If a stepper mis-steps it will be off by 4 full steps or 64 uSteps. Is that what you are seeing? It could be too high acceleration or something on the reversal.
>
>
>
> TK
>
>
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 1:20 PM
> Subject: [DynoMotion] Re: homing inconsistencies
>
>
>
>
>
> I added in some motion logic to make sure the lasers are being position from the same direction every time.
>
> Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.
>
> I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.
>
> -Brad Murry
> --- In DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> , Brad Murry <bradodarb@> wrote:
> >
> > Hello Tom,
> >
> >
> >
> > That worked perfectly.
> >
> >
> >
> >
> >
> > I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
> >
> >
> >
> > Here is the procedure for calibrating an axis on this machine::
> >
> >
> >
> > Step 1
> >
> >
> >
> > Home axis
> >
> >
> >
> > Step 2
> >
> > Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
> >
> >
> >
> > Step 3
> >
> > Jog to 6” intervals from origin and log those positions
> >
> >
> >
> > Step 4
> >
> > Once the position table is filled, the axis can be commanded to a requested position.
> >
> >
> >
> > Step 5
> >
> > The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
> >
> >
> >
> >
> >
> >
> >
> > This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
> >
> >
> >
> > I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
> >
> > Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
> >
> >
> >
> > When I re-home and jog the axis back to the origin it reports a different dest!
> >
> >
> >
> >
> >
> > I’ve had them re check that everything is tight mechanically and I am told that it is.
> >
> >
> >
> > Not sure what to do here…..
> >
> >
> >
> > -Brad Murry
> >
> >
> >
> >
> >
> > From: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> [mailto:DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> ] On Behalf Of Tom Kerekes
> > Sent: Friday, February 10, 2012 12:35 PM
> > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > Subject: Re: [DynoMotion] homing inconsistencies
> >
> >
> >
> >
> >
> > Hi Brad,
> >
> >
> >
> > I think the problem might be here at the end:
> >
> >
> >
> > Jog(axis,0); // stop
> > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > EnableAxisDest(axis,0);
> >
> > Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
> >
> >
> >
> > Please add waits between these
> >
> >
> >
> > while (!CheckDone(axis)) ;
> >
> >
> >
> > Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
> >
> >
> >
> > Regards
> >
> > TK
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > From: bradodarb <bradodarb@>
> > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > Sent: Friday, February 10, 2012 11:11 AM
> > Subject: [DynoMotion] homing inconsistencies
> >
> >
> >
> >
> >
> > Hello Tom,
> >
> > I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
> >
> > I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
> >
> > Could this value need adjustment? ::
> > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> >
> > Here is a snippet of the homing routine::
> >
> > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
> >
> > main()
> > {
> >
> >
> > DoHome( 5, // Laser #5
> > 100, // speed steps/sec
> > 1, // direction to home
> > 172, // home input bit
> > 1, // bit polarity (0 or 1) when tripped
> > 1000); // amount to move back inside (counts)
> >
> >
> > }
> > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> > {
> > float oppdir = dir * -1;
> >
> > EnableAxis(axis);
> > if(ReadBit(bit)==polarity)
> > {
> > Jog(axis, speed * oppdir); // start moving
> > while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> > Jog(axis,0); // stop
> > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > }
> > Jog(axis, speed * dir); // start moving
> > while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> > Jog(axis,0); // stop
> > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > EnableAxisDest(axis,0);
> > }
> >
> > Please help
> >
> > -Brad Murry
> >
>
>
>
> Reply to <mailto:bradodarb@...?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> sender | Reply to <mailto:DynoMotion@yahoogroups.com?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> group | Reply <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJxY2ZvOWhnBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTMyODkxMDc2Mg--?act=reply&messageNum=3840> via web post | <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJmNjNzbTNyBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMjg5MTA3NjI-> Start a New Topic
>
> Messages in this topic <http://groups.yahoo.com/group/DynoMotion/message/3830;_ylc=X3oDMTM1ZGx2Zm9yBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTMyODkxMDc2MgR0cGNJZAMzODMw> (6)
>
> Recent Activity:
>
> * <http://groups.yahoo.com/group/DynoMotion/members;_ylc=X3oDMTJnMDQ4Y3YxBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzI4OTEwNzYy?o=6> New Members 5
> * <http://groups.yahoo.com/group/DynoMotion/spnew;_ylc=X3oDMTJnMG84MTkzBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2cGhvdARzdGltZQMxMzI4OTEwNzYy> New Photos 2
> * <http://groups.yahoo.com/group/DynoMotion/files;_ylc=X3oDMTJocG9wZG04BF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2ZmlsZXMEc3RpbWUDMTMyODkxMDc2Mg--> New Files 3
>
> <http://groups.yahoo.com/group/DynoMotion;_ylc=X3oDMTJmaWR2YWZwBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMjg5MTA3NjI-> Visit Your Group
>

Group: DynoMotion Message: 3846 From: bradodarb Date: 2/10/2012
Subject: Re: homing inconsistencies
Hello Tom,

I made the recommended change but still no joy.

Then I decided to double check in KMotion.exe as suggested and I plugged in this code::

#include "KMotionDef.h"

main()
{
MoveAtVel(2,35.5, 1000);
while(!CheckDone(2));
MoveAtVel(2, 60.0,100);
}

It yields the same 'creepy' results.


I am at a total loss, as the machine performs to spec on the other four motors.

I guess I can try a different channel?


-Brad Murry



--- In DynoMotion@yahoogroups.com, TK <tk@...> wrote:
>
> That should be what is required. But you might try removing the 0x80 in case I'm wrong. Also increase the 32 to the max of 63 to see if that helps.
>
> Otherwise can you move reliably from KMotion.exe?
>
> Maybe you are doing something strange like re-enabling the axis every move or something?
>
> TK
>
> On Feb 10, 2012, at 2:18 PM, "bradodarb" <bradodarb@...> wrote:
>
> > Hello Tom,
> >
> > This is the acutal start after headers::
> >
> > int main()
> > {
> > double T0, LastX=0, LastY=0, LastZ=0, Tau;
> >
> > KStepPresent=TRUE; // enable KSTEP input multiplexing
> > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > ch0->InputMode=NO_INPUT_MODE;
> >
> > ... and so on to configure the rest of the axis settings.
> >
> > -Brad Murry
> >
> > --- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@> wrote:
> > >
> > > This is one of the first lines in main()
> > >
> > >
> > >
> > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > >
> > >
> > >
> > > -Brad Murry
> > >
> > >
> > >
> > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
> > > Sent: Friday, February 10, 2012 3:14 PM
> > > To: DynoMotion@yahoogroups.com
> > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > >
> > >
> > >
> > >
> > >
> > > Are you inverting the Step Pulse with the FPGA setting in your C code?
> > >
> > > TK
> > >
> > >
> > > On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@> wrote:
> > >
> > >
> > >
> > > I think it has to do with reversal.
> > >
> > >
> > >
> > > As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a â€Å"creeping” of final position was observed by the tech when commanding the motor to the same position over and over.
> > >
> > >
> > >
> > > So it happens like this::
> > >
> > >
> > >
> > > Commanded move = 12
> > >
> > >
> > >
> > > Actual first move = 12.5
> > >
> > > Wait until done
> > >
> > > Then back to 12
> > >
> > >
> > >
> > > When this is repeated over and over it seems to â€Å"creep” as observed by the laser projection(but the Dest value in KMotionEXE is consistent).
> > >
> > >
> > >
> > > -Brad Murry
> > >
> > >
> > >
> > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> > > Sent: Friday, February 10, 2012 2:48 PM
> > > To: DynoMotion@yahoogroups.com
> > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > >
> > >
> > >
> > >
> > >
> > > Hi Brad,
> > >
> > >
> > >
> > > Again sounds like a mis-step problem. If a stepper mis-steps it will be off by 4 full steps or 64 uSteps. Is that what you are seeing? It could be too high acceleration or something on the reversal.
> > >
> > >
> > >
> > > TK
> > >
> > >
> > >
> > > From: bradodarb <bradodarb@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Friday, February 10, 2012 1:20 PM
> > > Subject: [DynoMotion] Re: homing inconsistencies
> > >
> > >
> > >
> > >
> > >
> > > I added in some motion logic to make sure the lasers are being position from the same direction every time.
> > >
> > > Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.
> > >
> > > I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.
> > >
> > > -Brad Murry
> > > --- In DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> , Brad Murry <bradodarb@> wrote:
> > > >
> > > > Hello Tom,
> > > >
> > > >
> > > >
> > > > That worked perfectly.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
> > > >
> > > >
> > > >
> > > > Here is the procedure for calibrating an axis on this machine::
> > > >
> > > >
> > > >
> > > > Step 1
> > > >
> > > >
> > > >
> > > > Home axis
> > > >
> > > >
> > > >
> > > > Step 2
> > > >
> > > > Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
> > > >
> > > >
> > > >
> > > > Step 3
> > > >
> > > > Jog to 6” intervals from origin and log those positions
> > > >
> > > >
> > > >
> > > > Step 4
> > > >
> > > > Once the position table is filled, the axis can be commanded to a requested position.
> > > >
> > > >
> > > >
> > > > Step 5
> > > >
> > > > The requested position is calculated from the table and a ‘calibrated’ position is actually sent to the axis.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > This seems to works perfectly on one side of the table, but not the other. On the ‘bad’ table 1 motor is positioning reliably, but two are seemingly random.
> > > >
> > > >
> > > >
> > > > I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
> > > >
> > > > Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
> > > >
> > > >
> > > >
> > > > When I re-home and jog the axis back to the origin it reports a different dest!
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > I’ve had them re check that everything is tight mechanically and I am told that it is.
> > > >
> > > >
> > > >
> > > > Not sure what to do here…..
> > > >
> > > >
> > > >
> > > > -Brad Murry
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > From: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> [mailto:DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> ] On Behalf Of Tom Kerekes
> > > > Sent: Friday, February 10, 2012 12:35 PM
> > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > Subject: Re: [DynoMotion] homing inconsistencies
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hi Brad,
> > > >
> > > >
> > > >
> > > > I think the problem might be here at the end:
> > > >
> > > >
> > > >
> > > > Jog(axis,0); // stop
> > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > EnableAxisDest(axis,0);
> > > >
> > > > Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
> > > >
> > > >
> > > >
> > > > Please add waits between these
> > > >
> > > >
> > > >
> > > > while (!CheckDone(axis)) ;
> > > >
> > > >
> > > >
> > > > Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
> > > >
> > > >
> > > >
> > > > Regards
> > > >
> > > > TK
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > From: bradodarb <bradodarb@>
> > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > Sent: Friday, February 10, 2012 11:11 AM
> > > > Subject: [DynoMotion] homing inconsistencies
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hello Tom,
> > > >
> > > > I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
> > > >
> > > > I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
> > > >
> > > > Could this value need adjustment? ::
> > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > >
> > > > Here is a snippet of the homing routine::
> > > >
> > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
> > > >
> > > > main()
> > > > {
> > > >
> > > >
> > > > DoHome( 5, // Laser #5
> > > > 100, // speed steps/sec
> > > > 1, // direction to home
> > > > 172, // home input bit
> > > > 1, // bit polarity (0 or 1) when tripped
> > > > 1000); // amount to move back inside (counts)
> > > >
> > > >
> > > > }
> > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> > > > {
> > > > float oppdir = dir * -1;
> > > >
> > > > EnableAxis(axis);
> > > > if(ReadBit(bit)==polarity)
> > > > {
> > > > Jog(axis, speed * oppdir); // start moving
> > > > while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> > > > Jog(axis,0); // stop
> > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > }
> > > > Jog(axis, speed * dir); // start moving
> > > > while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> > > > Jog(axis,0); // stop
> > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > EnableAxisDest(axis,0);
> > > > }
> > > >
> > > > Please help
> > > >
> > > > -Brad Murry
> > > >
> > >
> > >
> > >
> > > Reply to <mailto:bradodarb@?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> sender | Reply to <mailto:DynoMotion@yahoogroups.com?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> group | Reply <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJxY2ZvOWhnBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTMyODkxMDc2Mg--?act=reply&messageNum=3840> via web post | <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJmNjNzbTNyBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMjg5MTA3NjI-> Start a New Topic
> > >
> > > Messages in this topic <http://groups.yahoo.com/group/DynoMotion/message/3830;_ylc=X3oDMTM1ZGx2Zm9yBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTMyODkxMDc2MgR0cGNJZAMzODMw> (6)
> > >
> > > Recent Activity:
> > >
> > > * <http://groups.yahoo.com/group/DynoMotion/members;_ylc=X3oDMTJnMDQ4Y3YxBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzI4OTEwNzYy?o=6> New Members 5
> > > * <http://groups.yahoo.com/group/DynoMotion/spnew;_ylc=X3oDMTJnMG84MTkzBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2cGhvdARzdGltZQMxMzI4OTEwNzYy> New Photos 2
> > > * <http://groups.yahoo.com/group/DynoMotion/files;_ylc=X3oDMTJocG9wZG04BF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2ZmlsZXMEc3RpbWUDMTMyODkxMDc2Mg--> New Files 3
> > >
> > > <http://groups.yahoo.com/group/DynoMotion;_ylc=X3oDMTJmaWR2YWZwBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMjg5MTA3NjI-> Visit Your Group
> > >
> >
> >
> > Reply to sender | Reply to group |
>
Group: DynoMotion Message: 3847 From: Tom Kerekes Date: 2/10/2012
Subject: Re: homing inconsistencies
Hi Brad,
 
Which FPGA settings did you test that C program with?
 
How much is the "creep" ?
 
Is it consistant?
 
The 35.5 position is a bit odd as we can't move a fraction of a microstep but should not be a problem.
 
Regards
TK

Group: DynoMotion Message: 3848 From: bradodarb Date: 2/10/2012
Subject: Re: homing inconsistencies
Hello Tom,


using::
FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32;

cause a creep in one direction

and

FPGA(STEP_PULSE_LENGTH_ADD) = 63;

creeps the other way.



I set the counts to ints (35 <-> 60).

-Brad Murry



--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Brad,
>  
> Which FPGA settings did you test that C program with?
>  
> How much is the "creep" ?
>  
> Is it consistant?
>  
> The 35.5 position is a bit odd as we can't move a fraction of a microstep but should not be a problem.
>  
> Regards
> TK
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 10, 2012 2:42 PM
> Subject: [DynoMotion] Re: homing inconsistencies
>
>
>  
> Hello Tom,
>
> I made the recommended change but still no joy.
>
> Then I decided to double check in KMotion.exe as suggested and I plugged in this code::
>
> #include "KMotionDef.h"
>
> main()
> {
> MoveAtVel(2,35.5, 1000);
> while(!CheckDone(2));
> MoveAtVel(2, 60.0,100);
> }
>
> It yields the same 'creepy' results.
>
> I am at a total loss, as the machine performs to spec on the other four motors.
>
> I guess I can try a different channel?
>
> -Brad Murry
>
> --- In DynoMotion@yahoogroups.com, TK <tk@> wrote:
> >
> > That should be what is required. But you might try removing the 0x80 in case I'm wrong. Also increase the 32 to the max of 63 to see if that helps.
> >
> > Otherwise can you move reliably from KMotion.exe?
> >
> > Maybe you are doing something strange like re-enabling the axis every move or something?
> >
> > TK
> >
> > On Feb 10, 2012, at 2:18 PM, "bradodarb" <bradodarb@> wrote:
> >
> > > Hello Tom,
> > >
> > > This is the acutal start after headers::
> > >
> > > int main()
> > > {
> > > double T0, LastX=0, LastY=0, LastZ=0, Tau;
> > >
> > > KStepPresent=TRUE; // enable KSTEP input multiplexing
> > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > ch0->InputMode=NO_INPUT_MODE;
> > >
> > > ... and so on to configure the rest of the axis settings.
> > >
> > > -Brad Murry
> > >
> > > --- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@> wrote:
> > > >
> > > > This is one of the first lines in main()
> > > >
> > > >
> > > >
> > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > >
> > > >
> > > >
> > > > -Brad Murry
> > > >
> > > >
> > > >
> > > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
> > > > Sent: Friday, February 10, 2012 3:14 PM
> > > > To: DynoMotion@yahoogroups.com
> > > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Are you inverting the Step Pulse with the FPGA setting in your C code?
> > > >
> > > > TK
> > > >
> > > >
> > > > On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@> wrote:
> > > >
> > > >
> > > >
> > > > I think it has to do with reversal.
> > > >
> > > >
> > > >
> > > > As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a â€Å"creepingâ€Â� of final position was observed by the tech when commanding the motor to the same position over and over.
> > > >
> > > >
> > > >
> > > > So it happens like this::
> > > >
> > > >
> > > >
> > > > Commanded move = 12
> > > >
> > > >
> > > >
> > > > Actual first move = 12.5
> > > >
> > > > Wait until done
> > > >
> > > > Then back to 12
> > > >
> > > >
> > > >
> > > > When this is repeated over and over it seems to â€Å"creepâ€Â� as observed by the laser projection(but the Dest value in KMotionEXE is consistent).
> > > >
> > > >
> > > >
> > > > -Brad Murry
> > > >
> > > >
> > > >
> > > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> > > > Sent: Friday, February 10, 2012 2:48 PM
> > > > To: DynoMotion@yahoogroups.com
> > > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hi Brad,
> > > >
> > > >
> > > >
> > > > Again sounds like a mis-step problem. If a stepper mis-steps it will be off by 4 full steps or 64 uSteps. Is that what you are seeing? It could be too high acceleration or something on the reversal.
> > > >
> > > >
> > > >
> > > > TK
> > > >
> > > >
> > > >
> > > > From: bradodarb <bradodarb@>
> > > > To: DynoMotion@yahoogroups.com
> > > > Sent: Friday, February 10, 2012 1:20 PM
> > > > Subject: [DynoMotion] Re: homing inconsistencies
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > I added in some motion logic to make sure the lasers are being position from the same direction every time.
> > > >
> > > > Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.
> > > >
> > > > I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.
> > > >
> > > > -Brad Murry
> > > > --- In DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> , Brad Murry <bradodarb@> wrote:
> > > > >
> > > > > Hello Tom,
> > > > >
> > > > >
> > > > >
> > > > > That worked perfectly.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
> > > > >
> > > > >
> > > > >
> > > > > Here is the procedure for calibrating an axis on this machine::
> > > > >
> > > > >
> > > > >
> > > > > Step 1
> > > > >
> > > > >
> > > > >
> > > > > Home axis
> > > > >
> > > > >
> > > > >
> > > > > Step 2
> > > > >
> > > > > Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
> > > > >
> > > > >
> > > > >
> > > > > Step 3
> > > > >
> > > > > Jog to 6� intervals from origin and log those positions
> > > > >
> > > > >
> > > > >
> > > > > Step 4
> > > > >
> > > > > Once the position table is filled, the axis can be commanded to a requested position.
> > > > >
> > > > >
> > > > >
> > > > > Step 5
> > > > >
> > > > > The requested position is calculated from the table and a â€ËÅ"calibrated’ position is actually sent to the axis.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > This seems to works perfectly on one side of the table, but not the other. On the â€ËÅ"bad’ table 1 motor is positioning reliably, but two are seemingly random.
> > > > >
> > > > >
> > > > >
> > > > > I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
> > > > >
> > > > > Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
> > > > >
> > > > >
> > > > >
> > > > > When I re-home and jog the axis back to the origin it reports a different dest!
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > I’ve had them re check that everything is tight mechanically and I am told that it is.
> > > > >
> > > > >
> > > > >
> > > > > Not sure what to do here…..
> > > > >
> > > > >
> > > > >
> > > > > -Brad Murry
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > From: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> [mailto:DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> ] On Behalf Of Tom Kerekes
> > > > > Sent: Friday, February 10, 2012 12:35 PM
> > > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > > Subject: Re: [DynoMotion] homing inconsistencies
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Hi Brad,
> > > > >
> > > > >
> > > > >
> > > > > I think the problem might be here at the end:
> > > > >
> > > > >
> > > > >
> > > > > Jog(axis,0); // stop
> > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > EnableAxisDest(axis,0);
> > > > >
> > > > > Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
> > > > >
> > > > >
> > > > >
> > > > > Please add waits between these
> > > > >
> > > > >
> > > > >
> > > > > while (!CheckDone(axis)) ;
> > > > >
> > > > >
> > > > >
> > > > > Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
> > > > >
> > > > >
> > > > >
> > > > > Regards
> > > > >
> > > > > TK
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > From: bradodarb <bradodarb@>
> > > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > > Sent: Friday, February 10, 2012 11:11 AM
> > > > > Subject: [DynoMotion] homing inconsistencies
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Hello Tom,
> > > > >
> > > > > I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
> > > > >
> > > > > I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
> > > > >
> > > > > Could this value need adjustment? ::
> > > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > >
> > > > > Here is a snippet of the homing routine::
> > > > >
> > > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
> > > > >
> > > > > main()
> > > > > {
> > > > >
> > > > >
> > > > > DoHome( 5, // Laser #5
> > > > > 100, // speed steps/sec
> > > > > 1, // direction to home
> > > > > 172, // home input bit
> > > > > 1, // bit polarity (0 or 1) when tripped
> > > > > 1000); // amount to move back inside (counts)
> > > > >
> > > > >
> > > > > }
> > > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> > > > > {
> > > > > float oppdir = dir * -1;
> > > > >
> > > > > EnableAxis(axis);
> > > > > if(ReadBit(bit)==polarity)
> > > > > {
> > > > > Jog(axis, speed * oppdir); // start moving
> > > > > while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> > > > > Jog(axis,0); // stop
> > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > }
> > > > > Jog(axis, speed * dir); // start moving
> > > > > while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> > > > > Jog(axis,0); // stop
> > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > EnableAxisDest(axis,0);
> > > > > }
> > > > >
> > > > > Please help
> > > > >
> > > > > -Brad Murry
> > > > >
> > > >
> > > >
> > > >
> > > > Reply to <mailto:bradodarb@?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> sender | Reply to <mailto:DynoMotion@yahoogroups.com?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> group | Reply <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJxY2ZvOWhnBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTMyODkxMDc2Mg--?act=reply&messageNum=3840> via web post | <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJmNjNzbTNyBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMjg5MTA3NjI-> Start a New Topic
> > > >
> > > > Messages in this topic <http://groups.yahoo.com/group/DynoMotion/message/3830;_ylc=X3oDMTM1ZGx2Zm9yBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTMyODkxMDc2MgR0cGNJZAMzODMw> (6)
> > > >
> > > > Recent Activity:
> > > >
> > > > * <http://groups.yahoo.com/group/DynoMotion/members;_ylc=X3oDMTJnMDQ4Y3YxBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzI4OTEwNzYy?o=6> New Members 5
> > > > * <http://groups.yahoo.com/group/DynoMotion/spnew;_ylc=X3oDMTJnMG84MTkzBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2cGhvdARzdGltZQMxMzI4OTEwNzYy> New Photos 2
> > > > * <http://groups.yahoo.com/group/DynoMotion/files;_ylc=X3oDMTJocG9wZG04BF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2ZmlsZXMEc3RpbWUDMTMyODkxMDc2Mg--> New Files 3
> > > >
> > > > <http://groups.yahoo.com/group/DynoMotion;_ylc=X3oDMTJmaWR2YWZwBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMjg5MTA3NjI-> Visit Your Group
> > > >
> > >
> > >
> > > Reply to sender | Reply to group |
> >
>
Group: DynoMotion Message: 3849 From: bradodarb Date: 2/10/2012
Subject: Re: homing inconsistencies
Hello Tom,

You know how sometimes when you are bleeding from bashing your head against the wall and you jst start playing with values?

Well I try not to do that but then I decided to try this::

FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 63;


Which you may have suggested, but I read your response as remove the 0x80 and crank it up to 63.


Anyhow, it seems to have done the trick and all is well.

Thanks again Tom,

-Brad Murry


--- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@...> wrote:
>
> Hello Tom,
>
>
> using::
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32;
>
> cause a creep in one direction
>
> and
>
> FPGA(STEP_PULSE_LENGTH_ADD) = 63;
>
> creeps the other way.
>
>
>
> I set the counts to ints (35 <-> 60).
>
> -Brad Murry
>
>
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Brad,
> >  
> > Which FPGA settings did you test that C program with?
> >  
> > How much is the "creep" ?
> >  
> > Is it consistant?
> >  
> > The 35.5 position is a bit odd as we can't move a fraction of a microstep but should not be a problem.
> >  
> > Regards
> > TK
> >
> > From: bradodarb <bradodarb@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Friday, February 10, 2012 2:42 PM
> > Subject: [DynoMotion] Re: homing inconsistencies
> >
> >
> >  
> > Hello Tom,
> >
> > I made the recommended change but still no joy.
> >
> > Then I decided to double check in KMotion.exe as suggested and I plugged in this code::
> >
> > #include "KMotionDef.h"
> >
> > main()
> > {
> > MoveAtVel(2,35.5, 1000);
> > while(!CheckDone(2));
> > MoveAtVel(2, 60.0,100);
> > }
> >
> > It yields the same 'creepy' results.
> >
> > I am at a total loss, as the machine performs to spec on the other four motors.
> >
> > I guess I can try a different channel?
> >
> > -Brad Murry
> >
> > --- In DynoMotion@yahoogroups.com, TK <tk@> wrote:
> > >
> > > That should be what is required. But you might try removing the 0x80 in case I'm wrong. Also increase the 32 to the max of 63 to see if that helps.
> > >
> > > Otherwise can you move reliably from KMotion.exe?
> > >
> > > Maybe you are doing something strange like re-enabling the axis every move or something?
> > >
> > > TK
> > >
> > > On Feb 10, 2012, at 2:18 PM, "bradodarb" <bradodarb@> wrote:
> > >
> > > > Hello Tom,
> > > >
> > > > This is the acutal start after headers::
> > > >
> > > > int main()
> > > > {
> > > > double T0, LastX=0, LastY=0, LastZ=0, Tau;
> > > >
> > > > KStepPresent=TRUE; // enable KSTEP input multiplexing
> > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > ch0->InputMode=NO_INPUT_MODE;
> > > >
> > > > ... and so on to configure the rest of the axis settings.
> > > >
> > > > -Brad Murry
> > > >
> > > > --- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@> wrote:
> > > > >
> > > > > This is one of the first lines in main()
> > > > >
> > > > >
> > > > >
> > > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > >
> > > > >
> > > > >
> > > > > -Brad Murry
> > > > >
> > > > >
> > > > >
> > > > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
> > > > > Sent: Friday, February 10, 2012 3:14 PM
> > > > > To: DynoMotion@yahoogroups.com
> > > > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Are you inverting the Step Pulse with the FPGA setting in your C code?
> > > > >
> > > > > TK
> > > > >
> > > > >
> > > > > On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@> wrote:
> > > > >
> > > > >
> > > > >
> > > > > I think it has to do with reversal.
> > > > >
> > > > >
> > > > >
> > > > > As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a â€Å"creepingâ€Â� of final position was observed by the tech when commanding the motor to the same position over and over.
> > > > >
> > > > >
> > > > >
> > > > > So it happens like this::
> > > > >
> > > > >
> > > > >
> > > > > Commanded move = 12
> > > > >
> > > > >
> > > > >
> > > > > Actual first move = 12.5
> > > > >
> > > > > Wait until done
> > > > >
> > > > > Then back to 12
> > > > >
> > > > >
> > > > >
> > > > > When this is repeated over and over it seems to â€Å"creepâ€Â� as observed by the laser projection(but the Dest value in KMotionEXE is consistent).
> > > > >
> > > > >
> > > > >
> > > > > -Brad Murry
> > > > >
> > > > >
> > > > >
> > > > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> > > > > Sent: Friday, February 10, 2012 2:48 PM
> > > > > To: DynoMotion@yahoogroups.com
> > > > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Hi Brad,
> > > > >
> > > > >
> > > > >
> > > > > Again sounds like a mis-step problem. If a stepper mis-steps it will be off by 4 full steps or 64 uSteps. Is that what you are seeing? It could be too high acceleration or something on the reversal.
> > > > >
> > > > >
> > > > >
> > > > > TK
> > > > >
> > > > >
> > > > >
> > > > > From: bradodarb <bradodarb@>
> > > > > To: DynoMotion@yahoogroups.com
> > > > > Sent: Friday, February 10, 2012 1:20 PM
> > > > > Subject: [DynoMotion] Re: homing inconsistencies
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > I added in some motion logic to make sure the lasers are being position from the same direction every time.
> > > > >
> > > > > Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.
> > > > >
> > > > > I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.
> > > > >
> > > > > -Brad Murry
> > > > > --- In DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> , Brad Murry <bradodarb@> wrote:
> > > > > >
> > > > > > Hello Tom,
> > > > > >
> > > > > >
> > > > > >
> > > > > > That worked perfectly.
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Here is the procedure for calibrating an axis on this machine::
> > > > > >
> > > > > >
> > > > > >
> > > > > > Step 1
> > > > > >
> > > > > >
> > > > > >
> > > > > > Home axis
> > > > > >
> > > > > >
> > > > > >
> > > > > > Step 2
> > > > > >
> > > > > > Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
> > > > > >
> > > > > >
> > > > > >
> > > > > > Step 3
> > > > > >
> > > > > > Jog to 6� intervals from origin and log those positions
> > > > > >
> > > > > >
> > > > > >
> > > > > > Step 4
> > > > > >
> > > > > > Once the position table is filled, the axis can be commanded to a requested position.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Step 5
> > > > > >
> > > > > > The requested position is calculated from the table and a â€ËÅ"calibrated’ position is actually sent to the axis.
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > This seems to works perfectly on one side of the table, but not the other. On the â€ËÅ"bad’ table 1 motor is positioning reliably, but two are seemingly random.
> > > > > >
> > > > > >
> > > > > >
> > > > > > I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
> > > > > >
> > > > > > Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
> > > > > >
> > > > > >
> > > > > >
> > > > > > When I re-home and jog the axis back to the origin it reports a different dest!
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > I’ve had them re check that everything is tight mechanically and I am told that it is.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Not sure what to do here…..
> > > > > >
> > > > > >
> > > > > >
> > > > > > -Brad Murry
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > From: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> [mailto:DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> ] On Behalf Of Tom Kerekes
> > > > > > Sent: Friday, February 10, 2012 12:35 PM
> > > > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > > > Subject: Re: [DynoMotion] homing inconsistencies
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi Brad,
> > > > > >
> > > > > >
> > > > > >
> > > > > > I think the problem might be here at the end:
> > > > > >
> > > > > >
> > > > > >
> > > > > > Jog(axis,0); // stop
> > > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > > EnableAxisDest(axis,0);
> > > > > >
> > > > > > Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Please add waits between these
> > > > > >
> > > > > >
> > > > > >
> > > > > > while (!CheckDone(axis)) ;
> > > > > >
> > > > > >
> > > > > >
> > > > > > Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Regards
> > > > > >
> > > > > > TK
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > From: bradodarb <bradodarb@>
> > > > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > > > Sent: Friday, February 10, 2012 11:11 AM
> > > > > > Subject: [DynoMotion] homing inconsistencies
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hello Tom,
> > > > > >
> > > > > > I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
> > > > > >
> > > > > > I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
> > > > > >
> > > > > > Could this value need adjustment? ::
> > > > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > > >
> > > > > > Here is a snippet of the homing routine::
> > > > > >
> > > > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
> > > > > >
> > > > > > main()
> > > > > > {
> > > > > >
> > > > > >
> > > > > > DoHome( 5, // Laser #5
> > > > > > 100, // speed steps/sec
> > > > > > 1, // direction to home
> > > > > > 172, // home input bit
> > > > > > 1, // bit polarity (0 or 1) when tripped
> > > > > > 1000); // amount to move back inside (counts)
> > > > > >
> > > > > >
> > > > > > }
> > > > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> > > > > > {
> > > > > > float oppdir = dir * -1;
> > > > > >
> > > > > > EnableAxis(axis);
> > > > > > if(ReadBit(bit)==polarity)
> > > > > > {
> > > > > > Jog(axis, speed * oppdir); // start moving
> > > > > > while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> > > > > > Jog(axis,0); // stop
> > > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > > }
> > > > > > Jog(axis, speed * dir); // start moving
> > > > > > while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> > > > > > Jog(axis,0); // stop
> > > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > > EnableAxisDest(axis,0);
> > > > > > }
> > > > > >
> > > > > > Please help
> > > > > >
> > > > > > -Brad Murry
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > Reply to <mailto:bradodarb@?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> sender | Reply to <mailto:DynoMotion@yahoogroups.com?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> group | Reply <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJxY2ZvOWhnBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTMyODkxMDc2Mg--?act=reply&messageNum=3840> via web post | <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJmNjNzbTNyBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMjg5MTA3NjI-> Start a New Topic
> > > > >
> > > > > Messages in this topic <http://groups.yahoo.com/group/DynoMotion/message/3830;_ylc=X3oDMTM1ZGx2Zm9yBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTMyODkxMDc2MgR0cGNJZAMzODMw> (6)
> > > > >
> > > > > Recent Activity:
> > > > >
> > > > > * <http://groups.yahoo.com/group/DynoMotion/members;_ylc=X3oDMTJnMDQ4Y3YxBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzI4OTEwNzYy?o=6> New Members 5
> > > > > * <http://groups.yahoo.com/group/DynoMotion/spnew;_ylc=X3oDMTJnMG84MTkzBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2cGhvdARzdGltZQMxMzI4OTEwNzYy> New Photos 2
> > > > > * <http://groups.yahoo.com/group/DynoMotion/files;_ylc=X3oDMTJocG9wZG04BF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2ZmlsZXMEc3RpbWUDMTMyODkxMDc2Mg--> New Files 3
> > > > >
> > > > > <http://groups.yahoo.com/group/DynoMotion;_ylc=X3oDMTJmaWR2YWZwBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMjg5MTA3NjI-> Visit Your Group
> > > > >
> > > >
> > > >
> > > > Reply to sender | Reply to group |
> > >
> >
>
Group: DynoMotion Message: 3850 From: bradodarb Date: 2/10/2012
Subject: Re: homing inconsistencies
Hello Tom,

Where can I find info on the FPGA structures. I would really like to know more about what is going on there.

-Brad Murry

--- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@...> wrote:
>
> Hello Tom,
>
> You know how sometimes when you are bleeding from bashing your head against the wall and you jst start playing with values?
>
> Well I try not to do that but then I decided to try this::
>
> FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 63;
>
>
> Which you may have suggested, but I read your response as remove the 0x80 and crank it up to 63.
>
>
> Anyhow, it seems to have done the trick and all is well.
>
> Thanks again Tom,
>
> -Brad Murry
>
>
> --- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@> wrote:
> >
> > Hello Tom,
> >
> >
> > using::
> > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32;
> >
> > cause a creep in one direction
> >
> > and
> >
> > FPGA(STEP_PULSE_LENGTH_ADD) = 63;
> >
> > creeps the other way.
> >
> >
> >
> > I set the counts to ints (35 <-> 60).
> >
> > -Brad Murry
> >
> >
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Brad,
> > >  
> > > Which FPGA settings did you test that C program with?
> > >  
> > > How much is the "creep" ?
> > >  
> > > Is it consistant?
> > >  
> > > The 35.5 position is a bit odd as we can't move a fraction of a microstep but should not be a problem.
> > >  
> > > Regards
> > > TK
> > >
> > > From: bradodarb <bradodarb@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Friday, February 10, 2012 2:42 PM
> > > Subject: [DynoMotion] Re: homing inconsistencies
> > >
> > >
> > >  
> > > Hello Tom,
> > >
> > > I made the recommended change but still no joy.
> > >
> > > Then I decided to double check in KMotion.exe as suggested and I plugged in this code::
> > >
> > > #include "KMotionDef.h"
> > >
> > > main()
> > > {
> > > MoveAtVel(2,35.5, 1000);
> > > while(!CheckDone(2));
> > > MoveAtVel(2, 60.0,100);
> > > }
> > >
> > > It yields the same 'creepy' results.
> > >
> > > I am at a total loss, as the machine performs to spec on the other four motors.
> > >
> > > I guess I can try a different channel?
> > >
> > > -Brad Murry
> > >
> > > --- In DynoMotion@yahoogroups.com, TK <tk@> wrote:
> > > >
> > > > That should be what is required. But you might try removing the 0x80 in case I'm wrong. Also increase the 32 to the max of 63 to see if that helps.
> > > >
> > > > Otherwise can you move reliably from KMotion.exe?
> > > >
> > > > Maybe you are doing something strange like re-enabling the axis every move or something?
> > > >
> > > > TK
> > > >
> > > > On Feb 10, 2012, at 2:18 PM, "bradodarb" <bradodarb@> wrote:
> > > >
> > > > > Hello Tom,
> > > > >
> > > > > This is the acutal start after headers::
> > > > >
> > > > > int main()
> > > > > {
> > > > > double T0, LastX=0, LastY=0, LastZ=0, Tau;
> > > > >
> > > > > KStepPresent=TRUE; // enable KSTEP input multiplexing
> > > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > > ch0->InputMode=NO_INPUT_MODE;
> > > > >
> > > > > ... and so on to configure the rest of the axis settings.
> > > > >
> > > > > -Brad Murry
> > > > >
> > > > > --- In DynoMotion@yahoogroups.com, Brad Murry <bradodarb@> wrote:
> > > > > >
> > > > > > This is one of the first lines in main()
> > > > > >
> > > > > >
> > > > > >
> > > > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > > >
> > > > > >
> > > > > >
> > > > > > -Brad Murry
> > > > > >
> > > > > >
> > > > > >
> > > > > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of TK
> > > > > > Sent: Friday, February 10, 2012 3:14 PM
> > > > > > To: DynoMotion@yahoogroups.com
> > > > > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Are you inverting the Step Pulse with the FPGA setting in your C code?
> > > > > >
> > > > > > TK
> > > > > >
> > > > > >
> > > > > > On Feb 10, 2012, at 1:52 PM, Brad Murry <bradodarb@> wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > I think it has to do with reversal.
> > > > > >
> > > > > >
> > > > > >
> > > > > > As I said in a previous mail when I changed the motion to overshot by a distance and then come back to the desired position, a â€Å"creepingâ€Â� of final position was observed by the tech when commanding the motor to the same position over and over.
> > > > > >
> > > > > >
> > > > > >
> > > > > > So it happens like this::
> > > > > >
> > > > > >
> > > > > >
> > > > > > Commanded move = 12
> > > > > >
> > > > > >
> > > > > >
> > > > > > Actual first move = 12.5
> > > > > >
> > > > > > Wait until done
> > > > > >
> > > > > > Then back to 12
> > > > > >
> > > > > >
> > > > > >
> > > > > > When this is repeated over and over it seems to â€Å"creepâ€Â� as observed by the laser projection(but the Dest value in KMotionEXE is consistent).
> > > > > >
> > > > > >
> > > > > >
> > > > > > -Brad Murry
> > > > > >
> > > > > >
> > > > > >
> > > > > > From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes
> > > > > > Sent: Friday, February 10, 2012 2:48 PM
> > > > > > To: DynoMotion@yahoogroups.com
> > > > > > Subject: Re: [DynoMotion] Re: homing inconsistencies
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hi Brad,
> > > > > >
> > > > > >
> > > > > >
> > > > > > Again sounds like a mis-step problem. If a stepper mis-steps it will be off by 4 full steps or 64 uSteps. Is that what you are seeing? It could be too high acceleration or something on the reversal.
> > > > > >
> > > > > >
> > > > > >
> > > > > > TK
> > > > > >
> > > > > >
> > > > > >
> > > > > > From: bradodarb <bradodarb@>
> > > > > > To: DynoMotion@yahoogroups.com
> > > > > > Sent: Friday, February 10, 2012 1:20 PM
> > > > > > Subject: [DynoMotion] Re: homing inconsistencies
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > I added in some motion logic to make sure the lasers are being position from the same direction every time.
> > > > > >
> > > > > > Basically when a position is commande, I overshoot it by .5" and then come back to the requested position.
> > > > > >
> > > > > > I was just informed that on the two problematic motors that commanding the same position over and over causes creep in the actual position. The dest stays consistent, but the position in reality creeps.
> > > > > >
> > > > > > -Brad Murry
> > > > > > --- In DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> , Brad Murry <bradodarb@> wrote:
> > > > > > >
> > > > > > > Hello Tom,
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > That worked perfectly.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I am still experiencing some odd issues on some of the motors, and I wonder if there is some saturation issue because the moves are so small like you said before.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Here is the procedure for calibrating an axis on this machine::
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Step 1
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Home axis
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Step 2
> > > > > > >
> > > > > > > Jog axis to the origin and press Save origin button(which just grabs the current position and saves it)
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Step 3
> > > > > > >
> > > > > > > Jog to 6� intervals from origin and log those positions
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Step 4
> > > > > > >
> > > > > > > Once the position table is filled, the axis can be commanded to a requested position.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Step 5
> > > > > > >
> > > > > > > The requested position is calculated from the table and a â€ËÅ"calibrated’ position is actually sent to the axis.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > This seems to works perfectly on one side of the table, but not the other. On the â€ËÅ"bad’ table 1 motor is positioning reliably, but two are seemingly random.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I can go through steps 1-2 and if I tell it the part size is 0(which should command to the origin) it does not always reach that position.
> > > > > > >
> > > > > > > Sometimes if I re-home the problem axis it will go to the right position. In every case, it does display the dest value that I command it to, but seems to arrive at a different place.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > When I re-home and jog the axis back to the origin it reports a different dest!
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I’ve had them re check that everything is tight mechanically and I am told that it is.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Not sure what to do here…..
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > -Brad Murry
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > From: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> [mailto:DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com> ] On Behalf Of Tom Kerekes
> > > > > > > Sent: Friday, February 10, 2012 12:35 PM
> > > > > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > > > > Subject: Re: [DynoMotion] homing inconsistencies
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hi Brad,
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I think the problem might be here at the end:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Jog(axis,0); // stop
> > > > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > > > EnableAxisDest(axis,0);
> > > > > > >
> > > > > > > Jog commands or Move commands do not wait for the action to complete they only initiate the action. So the result is we are telling KFLOP to Stop smoothly, then no no no, Move over here, then no no no Stop instantly and reset the position to zero right now.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Please add waits between these
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > while (!CheckDone(axis)) ;
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Also the stop is not really needed. The MoveRel should perform a blended turnaround to the point inside the sensor.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Regards
> > > > > > >
> > > > > > > TK
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > From: bradodarb <bradodarb@>
> > > > > > > To: DynoMotion@yahoogroups.com <mailto:DynoMotion%40yahoogroups.com>
> > > > > > > Sent: Friday, February 10, 2012 11:11 AM
> > > > > > > Subject: [DynoMotion] homing inconsistencies
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Hello Tom,
> > > > > > >
> > > > > > > I am having some issues with homing. It seems that I can home an axis several times and it does not home at the exact spot every time.
> > > > > > >
> > > > > > > I switched over to a modified simple home thinking it was the HomeMMV8 that was the problem.
> > > > > > >
> > > > > > > Could this value need adjustment? ::
> > > > > > > FPGA(STEP_PULSE_LENGTH_ADD) = 0x80 + 32; // set inverted and to 2us
> > > > > > >
> > > > > > > Here is a snippet of the homing routine::
> > > > > > >
> > > > > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset);
> > > > > > >
> > > > > > > main()
> > > > > > > {
> > > > > > >
> > > > > > >
> > > > > > > DoHome( 5, // Laser #5
> > > > > > > 100, // speed steps/sec
> > > > > > > 1, // direction to home
> > > > > > > 172, // home input bit
> > > > > > > 1, // bit polarity (0 or 1) when tripped
> > > > > > > 1000); // amount to move back inside (counts)
> > > > > > >
> > > > > > >
> > > > > > > }
> > > > > > > void DoHome(int axis, float speed, int dir, int bit, int polarity, float sensoroffset)
> > > > > > > {
> > > > > > > float oppdir = dir * -1;
> > > > > > >
> > > > > > > EnableAxis(axis);
> > > > > > > if(ReadBit(bit)==polarity)
> > > > > > > {
> > > > > > > Jog(axis, speed * oppdir); // start moving
> > > > > > > while (ReadBit(bit) == polarity) ; // wait for switch (input #8) to change
> > > > > > > Jog(axis,0); // stop
> > > > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > > > }
> > > > > > > Jog(axis, speed * dir); // start moving
> > > > > > > while (ReadBit(bit) != polarity) ; // wait for switch (input #8) to change
> > > > > > > Jog(axis,0); // stop
> > > > > > > MoveRelAtVel(axis,sensoroffset * oppdir,speed);
> > > > > > > EnableAxisDest(axis,0);
> > > > > > > }
> > > > > > >
> > > > > > > Please help
> > > > > > >
> > > > > > > -Brad Murry
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Reply to <mailto:bradodarb@?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> sender | Reply to <mailto:DynoMotion@yahoogroups.com?subject=RE%3A%20%5BDynoMotion%5D%20Re%3A%20homing%20inconsistencies> group | Reply <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJxY2ZvOWhnBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTMyODkxMDc2Mg--?act=reply&messageNum=3840> via web post | <http://groups.yahoo.com/group/DynoMotion/post;_ylc=X3oDMTJmNjNzbTNyBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMjg5MTA3NjI-> Start a New Topic
> > > > > >
> > > > > > Messages in this topic <http://groups.yahoo.com/group/DynoMotion/message/3830;_ylc=X3oDMTM1ZGx2Zm9yBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAMzODQwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTMyODkxMDc2MgR0cGNJZAMzODMw> (6)
> > > > > >
> > > > > > Recent Activity:
> > > > > >
> > > > > > * <http://groups.yahoo.com/group/DynoMotion/members;_ylc=X3oDMTJnMDQ4Y3YxBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzI4OTEwNzYy?o=6> New Members 5
> > > > > > * <http://groups.yahoo.com/group/DynoMotion/spnew;_ylc=X3oDMTJnMG84MTkzBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2cGhvdARzdGltZQMxMzI4OTEwNzYy> New Photos 2
> > > > > > * <http://groups.yahoo.com/group/DynoMotion/files;_ylc=X3oDMTJocG9wZG04BF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2ZmlsZXMEc3RpbWUDMTMyODkxMDc2Mg--> New Files 3
> > > > > >
> > > > > > <http://groups.yahoo.com/group/DynoMotion;_ylc=X3oDMTJmaWR2YWZwBF9TAzk3MzU5NzE0BGdycElkAzE1ODU4MDAxBGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMjg5MTA3NjI-> Visit Your Group
> > > > > >
> > > > >
> > > > >
> > > > > Reply to sender | Reply to group |
> > > >
> > >
> >
>
Group: DynoMotion Message: 3851 From: Tom Kerekes Date: 2/10/2012
Subject: Re: homing inconsistencies
Hi Brad,
 
The FPGA registers are listed in KMoionDef.h
 
But in this case the functionality for the Step/Dir Generators is described here:
 
 
A 2us setup time for the Direction signal should be sufficient so I'm not sure what is going on.
 
Regards
TK